document.addEventListener('DOMContentLoaded', function() {
    // 获取DOM元素
    const resetForm = document.getElementById('reset-form');
    const nameInput = document.getElementById('name');
    const idCardInput = document.getElementById('idCard');
    const phoneInput = document.getElementById('phone');
    const phoneBackupInput = document.getElementById('phoneBackup');
    const newPasswordInput = document.getElementById('new-password');
    const confirmPasswordInput = document.getElementById('confirm-password');
    const resetBtn = document.getElementById('reset-btn');
    const returnBtn = document.getElementById('return-btn');
    const alertBox = document.getElementById('alert-box');
    const resultFrame = document.getElementById('result-frame');
    
    // 监听iframe的加载事件，处理表单提交结果
    resultFrame.addEventListener('load', function() {
        try {
            // 尝试获取iframe中的响应内容
            const response = resultFrame.contentDocument.body.textContent;
            if (response) {
                const data = JSON.parse(response);
                console.log('服务器响应数据:', data);
                
                if (data.success) {
                    // 重置密码成功，显示成功信息
                    alertBox.textContent = data.message || '密码重置成功，请使用新密码登录';
                    alertBox.classList.remove('alert-danger', 'alert-info');
                    alertBox.classList.add('alert-success');
                    alertBox.style.display = 'block';
                    
                    // 清空表单
                    resetForm.reset();
                    
                    // 3秒后跳转到登录页面
                    setTimeout(function() {
                        window.location.href = 'index.html';
                    }, 3000);
                } else {
                    // 重置密码失败，显示错误信息
                    showAlert(data.message || '密码重置失败，请检查姓名、身份证号和手机号是否正确');
                }
            }
        } catch (error) {
            console.error('处理响应出错:', error);
            showAlert('服务器错误，请稍后再试');
        }
    });
    
    // 重置密码按钮点击事件
    resetBtn.addEventListener('click', function() {
        const name = nameInput.value.trim();
        const idCard = idCardInput.value.trim();
        const phone = phoneInput.value.trim();
        const newPassword = newPasswordInput.value.trim();
        const confirmPassword = confirmPasswordInput.value.trim();
        
        // 表单验证
        if (!name) {
            showAlert('请输入真实姓名');
            return;
        }
        
        if (!idCard) {
            showAlert('请输入身份证号码');
            return;
        }
        
        // 确保身份证号码是18位
        if (idCard.length !== 18) {
            showAlert('身份证号码必须是18位');
            return;
        }
        
        if (!validateIdCard(idCard)) {
            showAlert('请输入有效的身份证号码');
            return;
        }
        
        if (!phone) {
            showAlert('请输入手机号码');
            return;
        }
        
        // 验证手机号格式
        if (!validatePhone(phone)) {
            showAlert('请输入有效的11位手机号码');
            return;
        }
        
        if (!newPassword) {
            showAlert('请输入新密码');
            return;
        }
        
        if (newPassword.length < 6) {
            showAlert('新密码长度不能少于6位');
            return;
        }
        
        if (!confirmPassword) {
            showAlert('请确认新密码');
            return;
        }
        
        if (newPassword !== confirmPassword) {
            showAlert('两次输入的密码不一致');
            return;
        }
        
        // 显示加载提示
        showAlert('正在提交请求...', 'info');
        
        // 打印表单数据，用于调试
        console.log('提交的表单数据：');
        console.log('姓名:', name);
        console.log('身份证号:', idCard);
        console.log('手机号:', phone);
        console.log('新密码长度:', newPassword.length);
        
        // 同步手机号到备份字段
        if (phoneBackupInput) {
            phoneBackupInput.value = phone;
        }
        
        // 确保手机号字段存在
        const phoneField = document.querySelector('input[name="phone"]');
        if (!phoneField) {
            // 如果不存在，创建一个隐藏的手机号字段
            const hiddenPhone = document.createElement('input');
            hiddenPhone.type = 'hidden';
            hiddenPhone.name = 'phone';
            hiddenPhone.value = phone;
            resetForm.appendChild(hiddenPhone);
        }
        
        // 提交表单
        resetForm.submit();
    });
    
    // 返回按钮点击事件
    returnBtn.addEventListener('click', function() {
        window.location.href = 'index.html';
    });
    
    // 显示警告信息
    function showAlert(message, type = 'danger') {
        alertBox.textContent = message;
        alertBox.classList.remove('alert-success', 'alert-danger', 'alert-info');
        alertBox.classList.add('alert-' + type);
        alertBox.style.display = 'block';
        
        // 如果不是加载提示，3秒后自动隐藏
        if (type !== 'info') {
            setTimeout(function() {
                alertBox.style.display = 'none';
            }, 3000);
        }
    }
    
    // 验证身份证号码
    function validateIdCard(idCard) {
        // 身份证号码为18位，前17位为数字，最后一位可能是数字或字母X
        const reg = /^\d{17}[\dXx]$/;
        if (!reg.test(idCard)) {
            return false;
        }
        
        // 验证前两位的省份编码是否有效（范围是11-65）
        const provinceCode = parseInt(idCard.substring(0, 2));
        if (provinceCode < 11 || provinceCode > 65) {
            return false;
        }
        
        // 验证出生日期是否有效
        const year = parseInt(idCard.substring(6, 10));
        const month = parseInt(idCard.substring(10, 12));
        const day = parseInt(idCard.substring(12, 14));
        
        const date = new Date(year, month - 1, day);
        // 检查日期是否有效
        if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {
            return false;
        }
        
        // 验证身份证号码的校验码
        const coefficients = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
        const lastCharacters = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
        
        let sum = 0;
        for (let i = 0; i < 17; i++) {
            sum += parseInt(idCard.charAt(i)) * coefficients[i];
        }
        
        const remainder = sum % 11;
        const checkCode = lastCharacters[remainder];
        const lastChar = idCard.charAt(17).toUpperCase();
        
        return checkCode === lastChar;
    }
    
    // 验证手机号码
    function validatePhone(phone) {
        // 中国大陆手机号格式验证：以1开头的11位数字
        const reg = /^1\d{10}$/;
        return reg.test(phone);
    }
    
    // 添加输入限制，只允许输入数字和X
    idCardInput.addEventListener('input', function() {
        this.value = this.value.replace(/[^\dXx]/g, '');
    });
    
    // 添加输入限制，只允许输入数字
    phoneInput.addEventListener('input', function() {
        this.value = this.value.replace(/\D/g, '');
    });
});